#ifndef LOG_ENCODER_H
#define LOG_ENCODER_H

#include <QtCore/QHash>
#include <QtCore/QVariant>
#include "logmanager/log_global.h"

namespace smsbilling {

class LogEncoderPrivate;

typedef QHash<int, QVariant> LogMsgParams;

class LogEncoder {
public:
  LogEncoder();

  ~LogEncoder();

  static LogEncoder *instance();

  void encode(smslog::LogLevel log_level,
              int cls,
              int obj,
              int code_message,
              const LogMsgParams &parameters = LogMsgParams()) const;

private:

  friend class LogEncoderPrivate;

  LogEncoderPrivate *p;
};

} // namespace smsbilling

#endif // LOG_ENCODER_H
